package cn.yougou.common;


import cn.yougou.ygenum.CouponRulesEnum;
import cn.yougou.ygenum.GetRulesEnum;

import org.springframework.stereotype.Component;

/**
 * @author: DELL
 * @date: 2020/12/21 9:21
 * @description:
 */
@Component
public class EnumUtil {
    /**
     * 返回CouponRulesEnum 中枚举的value
     * 可能会出现没有常量的错误
     * IllegalArgumentException
     * */
    public String returnCouponRulesEnumValue(String key){
        try {
            return CouponRulesEnum.valueOf(key).getValue();
        }catch (IllegalArgumentException e){
            return "无常量";
        }

    }

    /**
     * 返回GetRulesEnum 中枚举的value
     * 可能会出现没有常量的错误
     * IllegalArgumentException
     * */
    public String returnGetRulesEnumValue(String key){
        try {
            return GetRulesEnum.valueOf(key).getValue();
        }catch (IllegalArgumentException e) {
            return "无常量";
        }
    }

    /**
     * 通过枚举的值 返回GetRulesEnum对应枚举
     * */
    public GetRulesEnum returnGetRulesEnumByValue(String value){
        try {
            GetRulesEnum [] data = GetRulesEnum.values();
            GetRulesEnum returnData =null;
            for(int i =0;i<data.length;i++){
                if(data[i].toString().equals(value)){
                    returnData= data[i];
                    break;
                }
            }
            if(returnData ==null){
                for(int i =0;i<data.length;i++){
                    if(data[i].getValue().equals(value)){
                        returnData= data[i];
                        break;
                    }
                }
            }
            return returnData;
        }catch (Exception e) {
            return null;
        }

    }
    /**
     * 返回CouponRulesEnum 中的枚举
     * */
    public CouponRulesEnum returnCouponRulesEnum (String key){
        try {
            return CouponRulesEnum.valueOf(key);
        }catch (IllegalArgumentException e){
            return null;
        }
    }
    /**
     * 返回GetRulesEnum 中的枚举
     * */
    public GetRulesEnum returnGetRulesEnum(String key){
        try {
            return GetRulesEnum.valueOf(key);
        }catch (IllegalArgumentException e) {
            return null;
        }
    }
    /**
     * 通过枚举的值 返回CouponRulesEnum对应枚举
     * */
    public CouponRulesEnum returnCouponRulesEnumByValue(String value){
        try {
            CouponRulesEnum [] data = CouponRulesEnum.values();
            CouponRulesEnum returnData =null;
            for(int i =0;i<data.length;i++){
                if(data[i].toString().equals(value)){
                    returnData = data[i];
                    break;
                }
            }
            if(returnData ==null){
               for(int i =0;i<data.length;i++){
                   if(data[i].getValue().equals(value)){
                       returnData = data[i];
                       break;
                   }
               }
            }
            return returnData;
        }catch (Exception e) {
            return null;
        }

    }

}
